package com.zbkj.service.service.project;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.common.model.project.EstimateFun;
import com.zbkj.common.vo.project.EstimateFunSortNumVo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 估算功能描述表 服务类
 * </p>
 *
 * @author 
 * @since 2024-09-13
 */
public interface EstimateFunService extends IService<EstimateFun> {

    /**
     *
     * @param projectId
     * @param neModifyState  3 排查删除标识数据
     * @param reqNo ai估算请求流水号
     * @return
     */
    List<EstimateFun> getValidFunDetailList(Long projectId, Integer neModifyState, String reqNo);

    //void saveEstimateFun(EstimateFun estimateFun);

    void saveEstimateFunList(List<EstimateFun> funDetailList);

    //boolean updateEstimateFun(EstimateFun estimateFun);

    void updateEstimateFunList(List<EstimateFun> funDetailList);

    //boolean modifyStatusDel(Long projectId, Long id);

    void modifyStatusDel(Long projectId, List<Long> idList);

    void restSortNum(List<Long> idList);

    void updateStatusToHis(Long projectId);

    boolean delByProjectId(Long projectId);

    void updateIncrSortNum(Long projectId, Integer minSort);

    List<EstimateFunSortNumVo> getModifyFunSortNumList(Long id, Integer newSortNum);

    BigDecimal sumFunPointsByProjectId(long projectId);

    Map<Integer,Integer> findIdxCount(Long projectId);

    List<EstimateFun> getListByProjectId(Long projectId);
}
